package com.hub.realtime.common.utils;

import java.lang.reflect.Array;
import java.util.*;

public class ListUtils {

    public static final <T> List<T> toList(T[] array) {
        List<T> list = new ArrayList<>(Arrays.asList(array));
        return list;
    }

    /**
     * 方法二：数组转集合，返回结果不可增删数据
     *
     * @param <T>
     * @param array
     * @return
     */
    public static final <T> List<T> asList(T[] array) {
        return Arrays.asList(array);
    }

    /**
     * 方法三：集合转数组
     *
     * @param <T>
     * @param list
     * @param clazz
     * @return
     */
    @SuppressWarnings("unchecked")
    public static final <T> T[] toArray(List<T> list, Class<T> clazz) {
        if (Objects.isNull(list)) {
            list = Collections.emptyList();
        }
        T[] array = (T[]) Array.newInstance(clazz, list.size());
        array = list.toArray(array);
        return array;
    }
}

